Non-transitory computer-readable medium and portable device

ABSTRACT

A non-transitory computer-readable medium having a computer program readable by a computer of a portable device connectable to an image input device and image output device and including a memory storing external programs activated by the computer program, the computer program causes the portable device to perform: receiving a user operation on a first screen including first objects corresponding to the external programs; determining the designated program when the first object is designated; when the designated program has a first function of executing processing for the input data, instructing the image input device to execute an input operation and performing first post-processing; and when the designated program has the second function of enabling a user to designate the output data, performing pre-processing and controlling the image output device to execute output operation for the output data.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation application of U.S. Ser. No.15/951,782 filed on Apr. 12, 2018 which is a continuation application ofU.S. Ser. No. 15/632,589 filed on Apr. 17, 2018, now U.S. Pat. No.9,948,761 granted on Apr. 17, 2018 and claims priority from JapanesePatent Application No. 2016-126923 filed on Jun. 27, 2016, the entiresubject-matter of each of which are incorporated herein by reference.

TECHNICAL FIELD

The disclosure relates to a program of a portable device configured togenerate image data by using an external program installed in theportable device.

BACKGROUND

There has been disclosed an information processing apparatus configuredto display an icon corresponding to a newly added function on a displayand to execute the function as the icon is tapped. The related-artinformation processing apparatus is configured to enable a user todesignate a screen and a position at which each icon is to be displayed.

As for program for the portable device, there has been proposed aportable device program having a function of processing image data byusing an external program installed in the portable device. The externalprogram that the program can use includes a program that is to beactivated before processing the image data and a program that is to beactivated after processing the image data. That is, when displayingicons, which correspond to the respective external programs of whichactivation timings are different, on a user's desired screen, theexternal programs may not be activated at appropriate timings.

SUMMARY

Illustrative aspects of the disclosure provide a portable device programcapable of activating an external program at an appropriate timingduring processing of image data.

The specification discloses a variety of aspects. According to oneaspect, there may be provided a non-transitory computer-readable mediumhaving a computer program stored thereon and readable by a computer of aportable device, the portable device comprising a memory, a display andan input interface and being connectable to an image input deviceconfigured to execute an input operation of transmitting input data,which is input in accordance with an instruction of the computerprogram, to the portable device and to an image output device configuredto execute an output operation of transmitting output data designated bythe computer program, the memory storing a plurality of externalprograms that can be activated by the computer program, the computerprogram, when executed by the computer, causes the portable device toperform: obtaining function information, the function informationindicating a function of each of the external programs; displaying afirst screen on the display, the first screen comprising a plurality offirst objects each of which corresponds to each of the plurality ofexternal programs; receiving a user operation on the first screenthrough the input interface; in response to the first object beingdesignated in the receiving of the user operation on the first screen,determining whether a designated program, which is the external programcorresponding to the designated first object, has one of a firstfunction and a second function, based on the function information of thedesignated program, the first function being a function of executingprocessing for the input data, the second function being a function ofenabling a user to designate the output data; in response to it beingdetermined that the designated program has the first function,instructing the image input device to execute the input operation; andperforming first post-processing of designating the input data input inthe input operation and activating the designated program; and inresponse to it being determined that the designated program has thesecond function, performing pre-processing of activating the designatedprogram to obtain the output data; and controlling the image outputdevice to execute the output operation for the output data obtained inthe pre-processing.

According to the above configuration, it is possible to activate theexternal program corresponding to the designated first object at theappropriate timing in accordance with the function information after theinput instruction processing and before the output instructionprocessing. Thereby, it is possible to smoothly execute a series ofprocessing for the image data.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic view of a system 100 in accordance with anillustrative embodiment.

FIG. 2A is a block diagram of an MFP 10, and FIG. 2B is a block diagramof a portable device 50.

FIGS. 3A and 3B are examples of data stored in a memory 62, in whichFIG. 3A depicts a program list and FIG. 3B depicts image data associatedwith program IDs.

FIG. 4A is a flowchart of main processing, and FIG. 4B is a flowchart ofdevice selection processing.

FIG. 5 is a flowchart of print processing.

FIG. 6 is a flowchart of scan processing.

FIG. 7 is a flowchart of PG activation processing.

FIGS. 8A and 8B depict display examples of a display 53, in which FIG.8A depicts a menu screen and FIG. 8B depicts a main screen.

FIGS. 9A and 9B depict display examples of the display 53, in which FIG.9A depicts a device selection screen and FIG. 9B depicts an obtainingsource selection screen.

FIGS. 10A and 10B depict display examples of the display 53, in whichFIG. 10A depicts a preview screen and FIG. 10B depicts a label editingscreen.

FIGS. 11A and 11B depict display examples of the display 53, in whichFIG. 11A depicts a map designation screen and FIG. 11B depicts a scansetting screen.

FIGS. 12A and 12B depict display examples of the display 53, in whichFIG. 12A depicts a scan result screen and FIG. 12B depicts an EULAscreen.

FIGS. 13A and 13B depict display examples of the display 53, in whichFIG. 13A depicts a data selection screen and FIG. 13B depicts an OCRscreen.

FIGS. 14A and 14B depict display examples of the display 53, in whichFIG. 14A depicts an input source selection screen and FIG. 14B depictsthe scan setting screen in which a pull-down menu 181 is set to benon-changeable.

DETAILED DESCRIPTION

Hereinafter, an illustrative embodiment of the disclosure will bedescribed with reference to the drawings. Meanwhile, the illustrativeembodiment to be described later is just an example of the disclosure,and the illustrative embodiment of the disclosure can be appropriatelychanged without changing the gist of the disclosure. For example, anexecution sequence of each processing to be described later can beappropriately changed without changing the gist of the disclosure.

FIG. 1 is a schematic view of a system 100 in accordance with anillustrative embodiment. The system 100 shown in FIG. 1 includes MFPs10A, 10B (hereinafter, also collectively referred to as “MFP 10”) and aportable device 50. The MFP 10 and the portable device 50 is configuredto perform communication with each other via a communication network101. The communication network 101 may be a wired LAN, a wireless LAN102 or a combination thereof, for example.

As shown in FIG. 2A, the MFP 10 (abbreviation of MultiFunctionPeripheral) mainly has a printer 11, a scanner 12, a display 23, aninput I/F 24, a communication I/F 25, a CPU 31, a memory 32 and acommunication bus 33. The respective constitutional elements configuringthe MFP 10 are connected to each other through the communication bus 33.

The printer 11 is configured to execute a print operation of recordingan image expressed by image data onto a sheet. As a recording method ofthe printer 11, a well-known method such as an inkjet method and anelectrophotographic method can be adopted. The scanner 12 is configuredto execute a scan operation of reading an image recorded on a documentand generating image data (hereinafter, referred to as “scan data”).Incidentally, the operations that can be executed by the MFPs 10A, 10Bmay be the same or not.

The printer 11 is an example of the image output device, and the printoperation is an example of the output operation. However, the specificexample of the image output device is not limited to the printer 11 andmay be any hardware capable of executing the output operation ofoutputting the output data. As the image output device, a FAX deviceconfigured to execute a FAX transmission operation of FAX-transmittingimage data in accordance with a FAX protocol, or the like can also beexemplified.

The scanner 12 is an example of the image input device, and the scanoperation is an example of the input operation. However, the specificexample of the image input device is not limited to the scanner 12 andmay be any hardware capable of executing the input operation oftransmitting input data, which is to be input in accordance with aninstruction of a terminal program 65 (which will be described later), tothe portable device 50. In other words, the image input device may behardware configured to input the input data to the terminal program ofthe portable device 50. As the image input device, a camera capable ofexecuting a photographing operation of imaging a photographic subject togenerate photographic data and the like can also be exemplified. Also, areceptacle which a portable storage medium such as a USB memory is to bedetachably mounted thereto, and which is configured to read out imagedata from the mounted portable storage medium, or the like can beexemplified as the image input device.

Also, the portable device 50 may be connected to the printer 11, thescanner 12 or the receptacle (not shown) of the MFP 10 via thecommunication network 101 or may be connected to a camera (not shown)via the communication bus 63, which is an example of the internal bus.Both the input data and the output data are image data.

The scanner 12 is configured to execute the scan operation in accordancewith an execution condition. The execution condition is specified by acombination of a plurality of parameters each of which corresponds toeach of a plurality of items (for example, “size”, “image quality”,“reading color”). The parameter of the item “size” indicates a size (forexample, “A4”, “B5”, “name card”) of a document on which an image of areading target is recorded. The parameter of the item “image quality”indicates a reading resolution (for example, “normal”, “fine”) of thescan operation. The parameter of the item “reading color” indicates acolor (for example, “color”, “monochrome”) of an image that is to beread in the scan operation. In the meantime, although the printer 11 isconfigured to execute the print operation in accordance with anexecution condition, the description thereof is herein omitted.

The display 23 is a liquid crystal monitor, an organic EL display or thelike and has a display surface for displaying a variety of information.

The input I/F 24 is a user interface configured to receive a user'sinput operation. Specifically, the input I/F 24 has buttons and isconfigured to output a variety of operation signals associated with thepushed buttons to the CPU 31. In addition, the input I/F 24 may have atouch sensor having a film shape and superimposed on the display surfaceof the display 23. An operation of designating an object displayed onthe display surface of the display 23 and an operation of inputting acharacter string or a number string are examples of the user operation.The “object” includes a character string, an icon, a button, a link, aradio button, a check box, a pull-down menu and the like displayed onthe display 23, for example.

The input I/F 24 is configured to output position information indicativeof a position on the display surface touched by the user. The input I/F24 may be implemented as a touch sensor. In the specification, the“touch” includes all operations of bringing an input medium into contactwith the display surface. Although the input medium is not in contactwith the display surface, “hover” or “floating touch” of bringing theinput medium close to a position at which a distance between the inputmedium and the display surface is very small may be included in theconcept of the “touch.” The input medium may be a user's finger, a touchpen or the like. A user operation of tapping a position of an icondisplayed on the display 23 is an example of the user operation ofdesignating the icon.

The communication I/F 25 is an interface capable of performingcommunication with an external apparatus through the communicationnetwork 101. That is, the MFP 10 is configured to transmit a variety ofinformation to the external apparatus through the communication I/F 25and to receive a variety of information from the external apparatusthrough the communication I/F 25. Although a specific communicationprotocol of the communication I/F 25 is not particularly limited, Wi-Fi(registered trademark of the Wi-Fi Alliance) can be adopted, forexample. Also, when the MFP 10 and the portable device 50 are connectedto each other by a USB cable or the like, the communication I/F 25 maybe a USB interface to which the USB cable is to be detachably mounted.

The CPU 31 is configured to control overall operations of the MFP 10.The CPU 31 is configured to obtain and execute a variety of programs(which will be described later) from the memory 32, based on a varietyof information output from the input I/F 24 and a variety of informationreceived from the external apparatus through the communication I/F 25.The CPU 31 and the memory 32 configure an example of the controller.

In the memory 32, an OS 34 and an apparatus program 35 are stored. Theapparatus program 35 may be a single program or a set of a plurality ofprograms. Also, in the memory 32, data or information necessary toexecute the apparatus program 35 is stored. The memory 32 is configuredby a RAM, a ROM, an EEPROM, an HDD, a portable storage medium such as aUSB memory to be detachably mounted to the MFP 10, a buffer of the CPU31 or a combination thereof, for example.

The memory 32 may be a computer-readable storage medium. Thecomputer-readable storage medium is a non-transitory medium. Thenon-transitory medium includes a recording medium such as a CD-ROM and aDVD-ROM as well as the above-described media. Also, the non-transitorymedium is a tangible medium. In the meantime, an electric signal forcarrying a program to be downloaded from a server or the like on theInternet is a computer-readable signal medium, which is a kind of thecomputer-readable medium, but is not included in the non-transitorycomputer-readable storage medium. This also applies to the memory 62 ofthe portable device 50, which will be described later.

As shown in FIG. 2B, the portable device 50 mainly has a display 53, ninput I/F 54, a communication I/F 55, a CPU 61, a memory 62 and acommunication bus 63. Since the display 53, the input I/F 54, thecommunication I/F 55, the CPU 61, the memory 62 and the communicationbus 63 included in the portable device 50 have the same configurationsas the display 23, the input I/F 24, the communication I/F 25, the CPU31, the memory 32 and the communication bus 33 included in the MFP 10,the descriptions thereof are omitted. The CPU 61 and the memory 62configure an example of the controller.

The portable device 50 may be a portable phone, a smart phone, a tabletterminal, a PC or the like, for example. More specifically, the display53 of the portable device 50 preferably has a display screen size of 12inch or less, and more preferably 8 inch or less. Also, the input I/F 54of the portable device 50 is preferably a touch sensor superimposed onthe display surface of the display 53. The memory 62 is configured tostore therein an OS 64, a terminal program 65 and an external program66.

The OS 64 may be Android (registered trademark of Google inc.) OS, iOS(registered trademark of Cisco Systems, Inc.), Windows Phone (registeredtrademark of Microsoft Corporation) Operating System or the like, forexample. The OS 64 can execute a plurality of programs installed in theportable device 50 in parallel. The plurality of programs is virtuallyexecuted in parallel by a time-division multiplex method, for example.Also, the OS 64 is configured to execute one of the plurality ofprograms, which are to be executed in parallel, at the foreground and toexecute the other programs at the background.

The foreground is a state where a screen associated with execution ofthe program is displayed in most of a display region of the display 53,for example. The background is a state where a screen associated withexecution of a program different from the program is not displayed inmost of the display region of the display 53, for example. That is, theportable device 50 can display on the display 53 only a screenassociated with execution of a program, which is being executed at theforeground, of the plurality of programs being executed in parallel.

The terminal program 65 is an example of the main program configured toenable the MFP 10 connected via the communication I/F 55 to execute theprint operation or the scan operation. The terminal program 65 isconfigured to transmit print instruction information for executing theprint operation and scan instruction information for executing the scanoperation to the MFP 10 via the communication I/F/ 55, for example.Also, the terminal program 65 can activate the external program 66installed in the portable device 50 in a so-called plug-in manner.

The external program 66 is installed in or uninstalled from the portabledevice 50, in accordance with a user instruction input through the inputI/F 54, for example. The external program 66 that can be activated bythe terminal program 65 has a function for assisting processing of theterminal program 65, for example. Incidentally, the external program 66is a program that is separate from the terminal program 65 and can beindependently executed, and is different from a subroutine of theterminal program 65.

The external program 66 is activated by an API (hereinafter, “activationAPI”) that is provided by the OS 64, for example. The terminal program65 is configured to designate, as an argument, a program ID of theexternal program 66, for example, and to execute the activation API. Asthe activation API is executed, the OS 64 activates the external program66 identified with the designated program ID. The external program 66 isconfigured to execute a predetermined operation, for example, and toprovide an execution result of the operation to the terminal program 65,as a return value of the activation API.

As shown in FIG. 3, for example, the memory 62 can store therein aprogram list. The program list includes one or more program records. Theprogram record is stored in the memory 62 upon the install of theterminal program 65, for example. The program record corresponds to oneof the plurality of external programs 66 that can be activated by theterminal program 65. The program record includes a program ID, a programname, function information and an activation parameter.

The program ID is an example of the program identification informationfor identifying the external program 66. Hereinafter, the externalprogram 66 identified with the program ID “xxx” may also be referred toas “external program ‘xxx’”. The program name is a name of the externalprogram 66. The function information is information indicating afunction of the corresponding external program 66. The initialactivation flag is information indicating whether the correspondingexternal program 66 has been already activated. In other words, theinitial activation flag is information indicating whether an EULA(abbreviation of End-User License Agreements) screen of thecorresponding external program 66 has been already displayed. Theafter-input activation flag is an example of timing informationindicating the activation timing of the corresponding external program66.

More specifically, one or both of a value “input” indicating a firstfunction of executing processing for input data obtained from the imageinput device and a value “output” indicating a second function ofenabling a user to select output data, which is to be output to theimage output device, are set in the function information. In the initialactivation flag, a first value “ON” indicating that the correspondingexternal program 66 has been already activated or a second value “OFF”indicating that the corresponding external program 66 has not beenactivated yet is set. In the after-input activation flag, a first value“ON” indicating that the corresponding external program 66 is to beactivated after processing of S43 (which will be described later) or asecond value “OFF” indicating that the corresponding external program 66is to be activated without executing the processing of S43 is set.

The initial values of the initial activation flag and the after-inputactivation flag are the second value “OFF”. The setting values of theinitial activation flag and the after-input activation flag can bechanged by the terminal program 65 or the external program 66, forexample. Also, the after-input activation flag is included only in theprogram record including the function information “input”.

The external program “001” indicated by the program name “labelprinting” has a first function of generating an image to be recorded toa CD-ROM from an image expressed by the input data, in accordance with auser operation through the input I/F 54. Also, the external program“001” has a second function of providing the terminal program 65 withimage data indicating an image generated in accordance with a useroperation through the input I/F 54, as the output data. The externalprogram “002” indicated by the program name “OCR” has a first functionof extracting a character string included in the input data, as textdata. The external program “003” indicated by the program name “map” hasa second function of providing the terminal program 65 with map imagedata, which is to be extracted in accordance with a user operationthrough the input I/F 54, of map image data obtained from a server (notshown), as the output data.

Also, as shown in FIG. 3B, the memory 62 can store therein program IDsand image data associated with the program IDs, for example. The imagedata shown in FIG. 3B is not stored upon install of the terminal program65 or the external program 66 identified with the corresponding programID, for example, and is stored in the memory 62 by the terminal program65 or the external program 66. The image data shown in FIG. 3B is databecoming the input data or the output data.

Also, although not shown, the memory 62 is provided therein with aphotograph data folder in which photograph data is to be stored. Also,although not shown, the memory 62 can store therein designated apparatusIDs. The designated apparatus ID is an apparatus ID for identifying theMFP 10 (hereinafter, referred to as “designated apparatus”), which isdesignated through the terminal program 65 by the user, of the MFPs 10A,10B capable of performing communication with the portable device 50 viathe communication network 101. In the illustrative embodiment, the MFP10A is identified with an apparatus ID “MFP-A”, and the MFP 10B isidentified with an apparatus ID “MFP-B”.

[Operations of System 100]

Operations of the system 100 in accordance with the illustrativeembodiment are described with reference to FIGS. 4 to 7.

A flowchart of the specification basically indicates processing that isto be executed by the CPUs 31, 61 in accordance with commands describedin the program. That is, in the below descriptions, the processing of“determination”, “extraction”, “selection”, “calculation”,“determining”, “specifying”, “control” and the like indicates theprocessing of the CPUs 31, 61. The processing that is to be executed bythe CPUs 31, 61 includes hardware controls through the OS 34, 64, too.Also, in the specification, “data” is expressed by a bit string that canbe read by a computer. The data having substantially the same meaningand the different formats is handled as the same data. This also appliesto the “information” of the specification.

First, the OS 64 of the portable device 50 displays a menu screen shownin FIG. 8A on the display 53. The menu screen includes a plurality ofprogram icons 111, 112, 113, 114. The program icons 111 to 114correspond to the programs installed in the portable device 50. Forexample, the program icons 111 to 113 correspond to the externalprograms 66 installed in the portable device 50, and the program icon114 corresponds to the terminal program 65. The OS 64 receives a useroperation of designating one of the program icons 111 to 114, throughthe input I/F 54.

As an example, when a designation on the program icon 111 is receivedthrough the input I/F 54, the OS 64 activates the external program “001”and executes the corresponding program at the foreground. As anotherexample, when a designation on the program icon 114 is received throughthe input I/F 54, the OS 64 activates the terminal program 65 andexecutes the corresponding program at the foreground. Hereinafter,processing that is executed when the program icon 114 is designated isdescribed.

When the terminal program 65 of the portable device 50 is activated bythe OS 64, the terminal program 65 reads all the program recordsregistered in the program list (S11). The processing of S11 is anexample of the obtaining processing of obtaining the functioninformation, the initial activation flag and the after-input activationflag. Then, the terminal program 65 displays a main screen shown in FIG.8B on the display 53 (S12). Then, the terminal program 65 receives auser operation on the main screen through the input I/F 54 (S13). Theprocessing of S12 is an example of the first display processing, and theprocessing of S13 is an example of the first reception processing.

The main screen is an example of the first screen including operationicons 121, 122, plug-in icons 123, 124, 125 and a switching icon 126.The operation icon 121 is an object for receiving an executioninstruction of the print operation. The operation icon 122 is an objectfor receiving an execution instruction of the scan operation. Theplug-in icons 123 to 125 are examples of the first object correspondingto the external programs “001”, “002”, “003”. The switching icon 126 isan object for receiving a switching instruction of the designatedapparatus.

Meanwhile, in the main screen, the plug-in icons 123, 125 correspondingto the external programs “001”, “003” in which the function information“output” is set and the plug-in icon 124 corresponding to the externalprogram “002” in which only the function information “input” is set aredisplayed in a different manner (e.g., different style, differentappearance, distinctively displayed). Also, when the designatedapparatus ID is not stored in the memory 62, a character string “notselected” indicating that a designated apparatus has not been selectedis described in the switching icon 126. On the other hand, although notshown, when the designated apparatus ID is stored in the memory 62, thecorresponding designated apparatus ID is described in the switching icon126.

Subsequently, when a designation on the switching icon 126 is receivedthrough the input I/F 54 (S13: switching), for example, the terminalprogram 65 executes device selection processing (S14). The deviceselection processing is described in detail with reference to FIG. 4B.

[Device Selection Processing]

First, the terminal program 65 searches the plurality of MFPs 10 capableof performing communication via the communication I/F 55 by using anSNMP (abbreviation of Simple Network Management Protocol) (S21).Specifically, the terminal program 65 broadcasts transmission requestinformation to the communication network 101 via the communication I/F55. Then, the terminal program 65 receives the apparatus IDs, which aretransmitted by the MFPs 10A, 10B as a response to the transmissionrequest information, via the communication I/F 55. That is, the terminalprogram 65 specifies the MFPs 10A, 10B, which are transmission sourcesof the apparatus IDs, as the MFP 10 that can perform communication. Inthe meantime, as the method of searching the MFP 10 that can performcommunication, the other well-known methods can also be adopted.

Then, the terminal program 65 displays a device selection screen shownin FIG. 9A on the display 53 (S22). The device selection screen includesdevice icons 131, 132. The device icons 131, 132 correspond to the MFPs10A, 10B specified in S21. Also, the apparatus IDs of the correspondingMFPs 10A, 10B are described in the device icons 131, 132. Then, theterminal program 65 receives a user operation on the device selectionscreen through the input I/F 54 (S23).

Then, when a designation on the device icon 131 is received through theinput I/F 54 (S23: Yes), for example, the terminal program 65 stores theapparatus ID received from the MFP 10A corresponding to the device icon131 in the memory 62, as the designated apparatus ID (S24). When thedesignated apparatus ID has been already stored in the memory 62, theterminal program 65 overwrites the designated apparatus ID with the newdesignated apparatus ID.

Returning to FIG. 4A, the terminal program 65 displays the main screenon the display 53 (S12). In the main screen after the device icon 131 isdesignated, the designated apparatus ID “MFP-A” is described in theswitching icon 126. Then, when a designation on the operation icon 121is received through the input I/F 54 (S21: operation), the terminalprogram 65 executes print processing shown in FIG. 5 (S15).

[Print Processing]

First, the terminal program 65 displays an obtaining source selectionscreen shown in FIG. 9B on the display 53 (S31). The obtaining sourceselection screen includes obtaining source icons 141, 142 and plug-inicons 143, 144. The obtaining source icon 141 corresponds to thephotograph data folder of the memory 62, which is an obtaining source ofthe photograph data, and the obtaining source icon 142 corresponds to aserver (not shown) on the Internet. Also, the plug-in icon 143corresponds to the external program “001”, and the plug-in icon 144corresponds to the external program “003”. Then, the terminal program 65receives a user operation on the obtaining source selection screenthrough the input I/F 54 (S32).

When the terminal program 65 receives a designation on the obtainingsource icon 141 through the input I/F 54 (S32: obtaining source), forexample, the terminal program 65 displays a list of photograph datastored in the photograph data folder on the display 53 and receives auser operation of designating one of the list-displayed photograph datathrough the input I/F 54. Then, the terminal program 65 reads out thedesignated photograph data from the memory 62, as the output data (S34).

Also, when the terminal program 65 receives a designation on theobtaining source icon 142 through the input I/F 54 (S32: obtainingsource), for example, the terminal program 65 displays a list of imagedata stored in the server (not shown) on the display 53 and receives auser operation of designating one of the list-displayed image datathrough the input I/F 54. Then, the terminal program 65 receives thedesignated image data from the server via the communication I/F 55, asthe output data (S34).

Then, the terminal program 65 displays a preview screen shown in FIG.10A on the display 53 (S35). The preview screen includes a preview image151 and a [print] icon 152. The preview image 151 indicates an image inwhich an image expressed by the obtained output data is recorded on asheet. Then, the terminal program 65 receives a user operation on thepreview screen through the input I/F 54 (S36).

Subsequently, when the terminal program 65 receives a designation on the[print] icon 152 through the input I/F 54 (S36: Yes), the terminalprogram 65 transmits print instruction information to the MFP 10A, whichis the designated apparatus, via the communication I/F 55 (S37). Theprint instruction information is information for enabling the designatedapparatus to execute the print operation. The print instructioninformation includes the output data, for example. The processing of S37is an example of the output instruction processing.

In the meantime, although not shown, the apparatus program 35 of the MFP10A receives the print instruction information from the portable device50 via the communication I/F 25. Then, the apparatus program 35 enablesthe printer 11 to execute the print operation in accordance with thereceived print instruction information. That is, the printer 11 recordsan image, which is expressed by the output data included in the printinstruction information, on a sheet.

Also, when the terminal program 65 receives a designation on the plug-inicon 143 through the input I/F 54 (S32: PI), for example, the terminalprogram 65 activates the external program “001” associated with theplug-in icon 143 (S33). That is, the terminal program 65 designates theprogram ID “001”, as an argument, and executes the activation API. Also,the OS 64 activates the external program “001” identified with theprogram ID “001”, which is an argument of the activation API, at theforeground. Also, the OS 64 switches the terminal program 65 from theforeground to the background.

When the external program “001” is activated from the terminal program65 by the activation API, the external program “001” displays a labelediting screen shown in FIG. 10B on the display 53. The label editingscreen includes a label image 161, editing icons 162, 163, 164 and a[preview] icon 165. The label image 161 is an image edited using theediting icons 162 to 164. The editing icon 162 corresponds to aninstruction to add a character string to the label image 161. Theediting icon 163 corresponds to an instruction to add a color to thelabel image 161. The editing icon 164 corresponds to an instruction toadd a photograph to the label image 161. Then, the external program“001” receives a user operation on the label editing screen through theinput I/F 54.

Subsequently, when the label image 161 is edited through the editingicons 162 to 164, the external program “001” temporarily stores labelimage data indicating the label image 161 after editing in the memory62. Then, when the external program “001” receives a designation on the[preview] icon 165 through the input I/F 54, the external program “001”provides the terminal program 65 with a pointer indicating a headaddress of a memory region in which the label image data has beentemporarily stored, as a return value of the activation API, and endsthe processing. This processing is an example of the processing ofenabling the user to designate the output data.

Also, when the terminal program 65 receives a designation on the plug-inicon 144 through the input I/F 54 (S32: PI), for example, the terminalprogram 65 activates the external program “003” associated with theplug-in icon 144 (S33). That is, the terminal program 65 designates theprogram ID “003”, as an argument, and executes the activation API. Also,the OS 64 activates the external program “003” identified with theprogram ID “003”, which is an argument of the activation API, at theforeground. Also, the OS 64 switches the terminal program 65 from theforeground to the background.

When the external program “003” is activated from the terminal program65 by the activation API, the external program “003” displays a mapdesignation screen shown in FIG. 11A on the display 53. The mapdesignation screen includes a map image 171 and a [preview] icon 172.The external program “003” temporarily stores map image data receivedfrom the server (not shown) via the communication I/F 55 in the memory62, and displays the map image 171 expressed by the map image data onthe map designation screen. Then, the external program “003” receives auser operation on the map designation screen through the input I/F 54.

When the external program “003” receives a slide operation at a positionof the map image 171 through the input I/F 54, for example, the externalprogram “003” receives map image data, which indicates a region slid inaccordance with a slide amount, from the server, temporarily stores thereceived map image data in the memory 62, and displays the map image 171expressed by the map image data on the map designation screen. Then,when the external program “003” receives a designation on the [preview]icon 172 through the input I/F 54, the external program “003” providesthe terminal program 65 with a pointer indicating a head address of amemory region in which the map image data has been temporarily stored,as a return value of the activation API, and ends the processing. Thisprocessing is an example of the processing of enabling the user todesignate the output data.

Then, the terminal program 65 obtains the pointer as the return value ofthe activation API, and is switched from the background to theforeground by the OS 64. Then, the terminal program 65 reads out thelabel image data or the map image data stored in the memory regionindicated by the obtained pointer from the memory 62, as the outputdata. The processing of S33 is an example of the pre-processing. Then,the terminal program 65 executes processing of S35 and thereafter byusing the output data obtained from the external programs “001”, “003”.

Returning to FIG. 4A, when the terminal program 65 receives adesignation on the operation icon 122 shown in FIG. 8B through the inputI/F 54 (S13: operation), the terminal program 65 executes scanprocessing shown in FIG. 6 (S15).

[Scan Processing]

First, the terminal program 65 displays a scan setting screen shown inFIG. 11B on the display 53 (S41). The scan setting screen is an exampleof the third screen including pull-down menus 181, 182, 183, and a[scan] icon 184. The pull-down menus 181 to 183 are examples of thethird object corresponding to the items “size”, “image quality” and“reading color” configuring the execution condition of the scanoperation. Then, the terminal program 65 receives a user operation onthe scan setting screen through the input I/F 54 (S42). The processingof S41 is an example the third display processing, and the processing ofS42 is an example of the third reception processing.

In each of the pull-down menus 181 to 183, one of candidates for theplurality of parameters that can be designated with respect to thecorresponding item is designated. The designated parameters aredisplayed in the pull-down menus 181 to 183. Also, the pull-down menus181 to 183 have a plurality of options corresponding to the candidatesfor the parameters, respectively. The pull-down menu 181 correspondingto the item “size” has three options corresponding to candidates “A4”,“B5” and “name card” for the condition parameter. Also, the pull-downmenu 182 corresponding to the item “image quality” has two optionscorresponding to candidates “normal” and “fine” of the parameter. Thepull-down menu 183 corresponding to the item “reading color” has twooptions corresponding to candidates “color” and “monochrome” of theparameter.

When a user operation of changing the condition “A4” designated in thepull-down menu 181 to “name card” is received through the input I/F 54,for example, the terminal program 65 changes the parameter displayed inthe pull-down menu 181 from “A4” to “name card”. Then, when adesignation on the [scan] icon 184 is received through the input I/F 54(S34: scan), the terminal program 65 transmits scan instructioninformation to the MFP 10A, which is the designated apparatus, via thecommunication I/F 55 (S43). The scan instruction information isinformation for enabling the designated apparatus to execute the scanoperation. The scan instruction information includes the parameters“name card”, “fine” and “color” designated in the pull-down menus 181 to183. The processing of S43 is an example of the input instructionprocessing.

In the meantime, although not shown, the apparatus program 35 of the MFP10A receives the scan instruction information from the portable device50 via the communication I/F 25. Then, the apparatus program 35 enablesthe scanner 12 to execute the scan operation in accordance with theparameters included in the scan instruction information. The scanner 12reads an image recorded on a document set on a contact glass or an ADF(abbreviation of Auto Document Feeder) (not shown) and generates scandata indicating the image. Then, the apparatus program 35 transmits thescan data generated by the scanner 12 to the portable device 50 via thecommunication I/F 25, as a response of the scan instruction information.

Then, the terminal program 65 of the portable device 50 receives thescan data from the MFP 10A via the communication I/F 55, as the inputdata, and temporarily stores the received input data in the memory 62.Then, the terminal program 65 determines whether the designated programID is stored in the memory 62 (S44). Although the designated program IDis described in detail later, when the operation icon 122 is tapped, thedesignated program ID has not been stored in the memory 62.

When it is determined that the designated program ID has not been storedin the memory 62 (S44: No), the terminal program 65 displays a scanresult screen shown in FIG. 12A on the display 53 (S45). The scan resultscreen includes an input image 191, plug-in icons 192, 193 and a [save]icon 194. The input image 191 is an image expressed by the input datathat has been obtained in S43. The plug-in icons 192, 193 correspond tothe external programs “001”, “002” in which the function information“input” is set. Then, the terminal program 65 receives a user operationon the scan result screen through the input I/F 54 (S46).

Subsequently, when a designation on the plug-in icon 193 is receivedthrough the input I/F 54 (S46: PI), for example, the terminal program 65activates the external program “002” corresponding to the designatedplug-in icon 193 (S47). The processing of S47 is an example of the firstpost-processing and will be described in detail later. In the meantime,when a designation on the [save] icon 194 is received through the inputI/F 54 (S46: save), the terminal program 65 stores the input data in thememory 62 (S48), and ends the scan processing. On the other hand, theterminal program 65 may be configured to enable the user to select oneof the plurality of external programs 66 through the input I/F 54, andmay be configured to store the input data in the memory 62 with beingassociated with the program ID of the designated external program 66, asshown in FIG. 3B.

Returning to FIG. 4A, when a designation on the plug-in icons 123, 124,125 shown in FIG. 8B is received through the input I/F 54 (S13: PI), theterminal program 65 executes PG activation processing shown in FIG. 7(S16).

[PG Activation Processing]

First, the terminal program 65 temporarily stores the program IDs of theexternal programs corresponding to the designated plug-in icons 123 to125 in the memory 62, as the designated program IDs. That is, thedesignated program ID is a program ID for identifying “designatedprogram”, which is the external program corresponding to each of thedesignated plug-in icons 123 to 125. Also, the terminal program 65determines the setting value of the function information, which isincluded in the program record of the designated program, of the programrecords obtained in S11 (S51). The processing of S51 is an example ofthe first determination processing.

As an example, when the plug-in icons 123, 125 are designated, theterminal program 65 determines that “output” is set in the functioninformation of the designated program (S51: output), and executesprocessing of S33 and thereafter in FIG. 5. That is, the terminalprogram 65 activates the designated program by using the activation API,in S33. Since the processing of S33 and thereafter has been alreadydescribed, the overlapping descriptions are omitted. As another example,when the plug-in icon 124 is designated, the terminal program 65determines that only “input” is set in the function information of thedesignated program (hereinafter, referred to as “the designated program‘002’”) (S51: only input), and determines the setting value of theinitial activation flag of the designated program “002” (S52). Theprocessing of S52 is an example of the third determination processing.

Then, when it is determined that the first value “ON” is set in theinitial activation flag of the designated program “002” (S52: ON), theterminal program 65 activates the designated program “002” withoutexecuting processing of S55 and thereafter. That is, the terminalprogram 65 designates the program ID “002”, as an argument, and executesthe activation API. Also, the OS 64 activates the external program “002”identified with the program ID “002”, which is an argument of theactivation API, at the foreground. Also, the OS 64 switches the terminalprogram 65 from the foreground to the background. This processing is anexample of the initial activation processing.

Then, when the designated program “002” is first activated from theterminal program 65 by the activation API, the designated program “002”displays an EULA screen shown in FIG. 12B on the display 53 (S53). TheEULA screen is a screen for checking with a user of the portable device50 as to whether to agree with a using condition of the designatedprogram “002” described in a software license. The EULA screen includesa message “Do you agree with the software license?”, a check box 201, a[contract] icon 202 and an [agree] icon 203. Then, the designatedprogram “002” receives a user operation on the EULA screen through theinput I/F 54 (S54). This processing is an example of the initialprocessing.

The check box 201 corresponds to an instruction to switch the settingvalue of the after-input activation flag. More specifically, the checkbox 201 at a checked state corresponds to an instruction to set thefirst value “ON” in the after-input activation flag. Also, the check box201 at an unchecked state corresponds to an instruction to set thesecond value “OFF” in the after-input activation flag. The [contract]icon 202 corresponds to an instruction to display a body text of thesoftware license on the display 53. The [agree] icon 203 corresponds toagreement with the using condition.

Then, when a user operation of tapping a position of the check box 201is received through the input I/F 54, the terminal program 65 switchesthe state of the check box 201 from one of the checked state and theunchecked state to the other. Also, when a user operation on the[contract] icon 202 is received through the input I/F 54, the terminalprogram 65 displays the body text of the software license on the display53, which is not shown.

Also, when a designation on the [agree] icon 203 is received through theinput I/F 54 (S54: Yes), the terminal program 65 changes the initialactivation flag from the first value “ON” to the second value “OFF” inthe program record of the designated program “002”, sets the settingvalue corresponding to the state the check box 201 to the after-inputactivation flag, and ends the processing. Then, the terminal program 65is switched from the background to the foreground by the OS 64. Theterminal program 65 may display the main screen on the display 53, forexample.

Also, when it is determined that the second value “OFF” is set to theinitial activation flag of the designated program “002” (S52: OFF), theterminal program 65 determines the setting value of the after-inputactivation flag of the designated program “002” (S55). The processing ofS55 is an example of the fourth determination processing. When it isdetermined that the second value “OFF” is set to the after-inputactivation flag of the designated program “002” (S55: OFF), the terminalprogram 65 activates the designated program “002” by using theactivation API, without executing processing of S56 and thereafter(S62).

Also, when it is determined that the first value “ON” is set to theafter-input activation flag of the designated program “002” (S55: ON),the terminal program 65 refers to a table shown in FIG. 3B anddetermines whether image data (hereinafter, referred to as “associateddata”) associated with the designated program ID “002” is stored in thememory 62 (S56). The processing of S56 is an example of the seconddetermination processing. When it is determined that the associated datais not stored in the memory 62 (S56: No), the terminal program 65executes processing of S59 and thereafter without executing processingof S57 and S58, which will be described later.

Also, when it is determined that the associated data is stored in thememory 62 (S56: Yes), the terminal program 65 displays a data selectionscreen shown in FIG. 13A on the display 53 (S57). The data selectionscreen is an example of the second screen including data icons 211, 212and a [new] icon 213. Each of the data icons 211, 212 is an example ofthe second object corresponding to one of the plurality of associateddata. The [new] icon 213 corresponds to the execution instruction ofS43. Then, the terminal program 65 receives a user operation on the dataselection screen through the input I/F 54 (S58). The processing of S57is an example of the second display processing, and the processing ofS58 is an example of the second reception processing.

Subsequently, when a designation on the data icon 211 is receivedthrough the input I/F 54 (S58: data), for example, the terminal program65 activates the designated program “002” by using the image datacorresponding to the data icon 211, as the input data, without executingprocessing of S59 and thereafter (S62). That is, the terminal program 65designates, as an argument, the program ID “002” and a pointerindicating a head address of a memory region in which the input data isstored, and executes the activation API. Also, the OS 64 activates theexternal program “002” identified with the program ID “002”, which is anargument of the activation API, at the foreground. Also, the OS 64switches the terminal program 65 from the foreground to the background.This processing is an example of the second post-processing.

Subsequently, when the external program “002” is activated from theterminal program 65 by the activation API, the external program “002”displays an OCR screen shown in FIG. 13B on the display 53. The OCRscreen includes an input image 221 and a [reading] icon 222. The inputimage 221 is an image expressed by the input data stored in the memoryregion indicated by the designated pointer. The [reading] icon 222corresponds to an instruction to extract a character string included inthe input image 221. Then, the external program “002” receives a useroperation on the OCR screen through the input I/F 54.

When a designation on the [reading] icon 222 is received through theinput I/F 54, the external program “002” extracts character strings “O×Kabushiki Kaisha”, “TOKKYO Taro” and “xx-yyyy-zzzz” by the well-knownalgorithm. Then, the external program “002” registers the extractedcharacter strings in an address book of the memory 62 or the like, andends the processing. This processing is an example of the processing forthe input data. Then, the OS 64 switches the terminal program 65 fromthe background to the foreground. Then, the terminal program 65 switchedto the foreground ends the PG activation processing.

Also, when a designation on the [new] icon 213 is received through theinput I/F 54 (S58: new), the terminal program 65 determines whether theportable device 50 is connected to the plurality of image input devices(for example, the scanner 12 and the receptacle (not shown) of the MFP10 and the camera (not shown) of the portable device 50) (S59). When itis determined that the portable device 50 is connected to only one imageinput device (S59: No), the terminal program 65 executes the processingof S41 and thereafter, without executing processing of S60 and S61,which will be described later.

Also, when it is determined that the portable device 50 is connected tothe plurality of image input devices (S59: Yes), the terminal program 65displays an input source selection screen shown in FIG. 14A on thedisplay 53 (S60). The input source selection screen is an example of thefourth screen including input source icons 231, 232, 233. The inputsource icons 231, 232, 233 are examples of the fourth objectcorresponding to the scanner 12 of the MFP 10, the receptacle (notshown) of the MFP 10 and the camera (not shown) of the portable device50, respectively. Then, the terminal program 65 receives a useroperation on the input source selection screen through the input I/F 54(S61). The processing of S60 is an example of the fourth displayprocessing, and the processing of S61 is an example of the fourthreception processing.

Subsequently, when a designation on the input source icon 231 isreceived through the input I/F 54 (S61: Yes), for example, the terminalprogram 65 displays a scan setting screen shown in FIG. 14B on thedisplay 53 (S41). When a designation on the [scan] icon 184 is receivedthrough the input I/F 54 (S42: Yes), the terminal program 65 enables thescanner 12 of the MFP 10 to execute the scan operation (S43). Since theprocessing of S43 has been already described, the overlappingdescription is omitted.

In the meantime, the scan setting screen shown in FIG. 14B is differentfrom that of FIG. 11B, in that the parameter “name card” designated inthe pull-down menu 181 cannot be changed. The parameter “name card” ofthe item “size” is a parameter inherent to the designated program “002”configured to extract a character string from the input data obtained byreading an image recorded on a name card, for example. The inherentparameter is a parameter capable of appropriately expressing thefunction of the corresponding external program 66, as compared to theother parameters of the item, for example. The parameter inherent toeach external program 66 may be included in the program record of FIG.3A, for example.

Also, in the processing of S43 that is executed when the input sourceicon 232 of FIG. 14A is designated, the terminal program 65 transmitsreading instruction information to the MFP 10 via the communication I/F55. The reading instruction information is information of instructingreading of image data recorded in a portable recording medium (notshown) mounted to the receptacle. Then, the terminal program 65 receivesthe input data from the MFP 10 via the communication I/F 55, andtemporarily stores the received input data in the memory 62. Also, inthe processing of S43 that is executed when the input source icon 233 ofFIG. 14A is designated, the terminal program 65 enables the camera ofthe portable device 50 to execute a photographing operation, andtemporarily stores input data obtained from the camera in the memory 62.

Subsequently, when it is determined that the designated program ID “002”is stored in the memory 62 (S44: Yes), the terminal program 65 activatesthe designated program “002” without executing the processing of S45 andS46 (S47). That is, the terminal program 65 designates, as an argument,the program ID “002” and a pointer indicating a head address of a memoryregion in which the input data is temporarily stored in S43, andexecutes the activation API. Since the processing thereafter is the sameas the processing of S62 described with reference to FIG. 13A, theoverlapping description is omitted.

[Operational Effects of Illustrative Embodiment]

According to the illustrative embodiment, it is possible to activate theexternal programs 66 corresponding to the designated plug-in icons 123to 125 at the appropriate timings in accordance with the functioninformation during the processing of S47 after the input instructionprocessing and the processing of S33 before the output instructionprocessing. Thereby, it is possible to smoothly execute a series ofprocessing for the image data. Also, according to the illustrativeembodiment, it is possible to activate the designated program at theuser's desired timing, based on the setting value of the after-inputexecution flag.

Also, according to the illustrative embodiment, since the plug-in icons123, 125 of the function information “output” and the plug-in icon 124of the function information “input” are displayed on the main screen ina different manner, it is possible to enable the user to recognize thefunctions of the external programs corresponding to the plug-in icons123 to 125. In the meantime, the plug-in icon 123 corresponding to theexternal program “001” in which both “input” and “output” are set in thefunction information may be included in an input group or an outputgroup.

Also, the external program 66 is configured to execute the initialprocessing of requesting the user to agree with the license at theinitially activated timing, for example. Therefore, like theillustrative embodiment, it is possible to enable the external program66 to appropriately execute the initial processing by determiningwhether the external program 66 is activated for the first time.However, the specific example of the initial processing is not limitedto the agreement with the license, and may be an input of the settinginformation or the like.

Also, according to the illustrative embodiment, when the input data hasbeen already stored in the memory 62, the designated program is enabledto execute the processing for the input data stored in the memory 62,instead of the input data that is to be input from the image inputdevice in S43. Thereby, it is possible to designate the input data,which is to be processed by the designated program, by a variety ofmethods. Also, when the plurality of image data is stored in the memory62, the user can select the input data, which is to be processed by thedesignated program, through the data selection screen. Thereby, it ispossible to smoothly execute a series of processing for the image data.

Also, according to the illustrative embodiment, the user can select oneof the plurality of image input devices connected to the portable device50 through the input source selection screen. Thereby, it is possible toobtain the input data, which is to be processed by the designatedprogram, by a variety of methods. Also, according to the illustrativeembodiment, in the scan setting screen of FIG. 14B, some of theplurality of items “size”, “image quality” and “reading color”configuring the execution condition is fixed to the parameter inherentto the designated program, so that it is possible to input the inputdata suitable for the designated program to the image input device.

Incidentally, in the above-explained illustrative embodiment, when theplug-in icon 123 corresponding to the external program “001” in whichboth “input” and “output” are set in the function information is tapped,the processing of S33 and thereafter is executed (S51: output). However,the determination of S51 is not limited to the above-described example.For example, the processing of S52 and thereafter may be executed or theuser may designate which of S33 and S52 the processing proceeds to,through the input I/F 54.

It has been explained that, in the MFP 10 and the portable device 50 ofthe illustrative embodiment, the various programs stored in the memories32, 62 are executed by the CPUs 31, 61, so that the respectiveprocessing to be executed by the controller of the disclosure isimplemented. However, the configuration of the controller is not limitedthereto, and some or all of the controller may be implemented by thehardware such as an integrated circuit and the like.

The disclosure can be implemented as not only the MFP 10 and theportable device 50 but also a program configured to enable the MFP 10and the portable device 50 to execute the processing. The program may beprovided with being recorded in a non-transitory recording medium. Thenon-transitory recording medium may include a memory mounted on a serverthat can be connected to the MFP 10 and the portable device 50 throughthe communication network 101, in addition to a CD-ROM, a DVD-ROM andthe like. The program stored in the memory of the server may betransmitted through the communication network 101 such as the Internet,as information or signal indicative of the program.

1. A non-transitory computer-readable storage medium having a computerprogram stored thereon and readable by a computer of an image processingapparatus, the image processing apparatus comprising an input interface,a memory and a communication interface being communicable with an imageinput apparatus being configured to execute an input operation oftransmitting input data to the image processing apparatus, the memorystoring a plurality of external programs that can be activated by thecomputer program, the computer program, when executed by the computer,causes the image processing apparatus to perform: receiving, via theinput interface, designation of a first external program, which is oneof the plurality of external programs, the first external program beingfor executing a first function, the first function being a function ofexecuting processing for the input data; instructing the image inputapparatus to execute the input operation; and performing firstpost-processing of designating the input data input in the inputoperation and activating the first external program.
 2. Thenon-transitory computer-readable storage medium according to claim 1,wherein the image processing apparatus further comprises a display, andwherein the computer program, when executed by the computer, causes theimage processing apparatus to perform: displaying a first screen on thedisplay, the first screen comprising a first object corresponding to thefirst external program; and receiving a user operation to designate thefirst object on the first screen through the input interface.
 3. Thenon-transitory computer-readable medium according to claim 1, wherein inthe execution of the input operation, the computer program, whenexecuted by the computer, causes the image input apparatus to performtransmitting the input data to the image processing apparatus, the inputdata being input in accordance with an instruction of the computerprogram.
 4. The non-transitory computer-readable storage mediumaccording to claim 1, wherein the computer program, when executed by thecomputer, causes the image processing apparatus to perform: in the caseof receiving the designation of the first external program, determiningwhether the input data is stored in the memory; in a case where it isdetermined that the input data is stored in the memory, performingsecond post-processing of designating the input data stored in thememory and activating the first external program without performing theinstructing; and in a case where it is determined that the input data isnot stored in the memory, performing the instructing.
 5. Thenon-transitory computer-readable storage medium according to claim 4,wherein the memory stores the input data with being associated withprogram identification information for identifying the first externalprogram, and wherein in the determining of whether the input data isstored in the memory, the computer program, when executed by thecomputer, causes the image processing apparatus to determine whether theinput data associated with the program identification information of thefirst external program is stored in the memory.
 6. The non-transitorycomputer-readable storage medium according to claim 4, wherein the imageprocessing apparatus further comprises a display, and wherein in thecase where it is determined that a plurality of the input data is storedin the memory, the computer program, when executed by the computer,causes the image processing apparatus to perform: displaying a secondscreen on the display, the second screen comprising a plurality ofsecond objects each of which corresponds to each of the plurality of theinput data stored in the memory, receiving a user operation on thesecond screen through the input interface; and performing the secondpost-processing of designating the input data corresponding to thesecond object designated in the receiving of the user operation on thesecond screen and activating the first external program.
 7. Thenon-transitory computer-readable storage medium according to claim 1,wherein the image processing apparatus further comprises a display,wherein the image input apparatus is configured to execute the inputoperation in accordance with an execution condition, the executioncondition being specified by a combination of a plurality of parameterseach of which corresponds to each of a plurality of items, and whereinthe computer program, when executed by the computer, causes the imageprocessing apparatus to perform: displaying a third screen on thedisplay, the third screen comprising a plurality of third objects, thethird object corresponding to one of the plurality of items andindicating a state where one of a plurality of candidates for theparameter, which can be designated for the item, is designated;receiving a user operation of changing the parameter designated with thethird object on the third screen through the input interface; andinstructing the image input apparatus to execute the input operation inaccordance with the plurality of the parameters each of which isdesignated by each of the third objects, and wherein in the displayingof the third screen that is performed in the case of receiving thedesignation of the first external program, the computer program, whenexecuted by the computer, causes the image processing apparatus todisplay at least one of the third objects in such a manner that theparameter inherent to the first external program is designated and theparameter cannot be changed in the receiving of the user operation onthe third screen.
 8. The non-transitory computer-readable storage mediumaccording to claim 1, wherein the computer program, when executed by thecomputer, causes the image processing apparatus to perform: in the caseof receiving the designation of the first external program, determiningwhether the first external program is first activated; in a case whereit is determined that the first external program is not first activated,performing the instructing and the first post-processing; and in a casewhere it is determined that the first external program is firstactivated, performing initial activation processing of activating thefirst external program to execute initial processing, without performingthe instructing and the first post-processing.
 9. The non-transitorycomputer-readable storage medium according to claim 1, wherein thecomputer program, when executed by the computer, causes the imageprocessing apparatus to perform: obtaining timing information indicatingan activation timing of the first external program, the timinginformation having one of a first value and a second value designatedthrough the communication interface by a user, the first valueindicating that the first external program is to be activated afterperforming the instructing, the second value indicating that the firstexternal program is to be activated without performing the instructing;in the case of receiving the designation of the first external program,determining a value of the timing information; wherein in a case whereit is determined that the value of the timing information is the firstvalue, performing the first post-processing after performing theinstructing, and wherein in a case where it is determined that the valueof the timing information is the second value, activating the firstexternal program without performing the instructing.
 10. Thenon-transitory computer-readable storage medium according to claim 1,wherein the image processing apparatus further comprises a display,wherein the communication interface is communicable with a plurality ofthe image input apparatuses, and wherein the computer program, whenexecuted by the computer, causes the image processing apparatus toperform: in the case of receiving the designation of the first externalprogram, before performing the instructing, displaying a fourth screenon the display, the fourth screen comprising a plurality of fourthobjects each of which corresponds to each of the image inputapparatuses; and receiving a user operation on the fourth screen throughthe input interface; and in the instructing, instructing the image inputapparatus corresponding to the fourth object designated in the receivingthe user operation on the fourth screen to perform the input operation.11. (canceled)
 12. An image processing apparatus comprising: aprocessor; a memory that stores a main program and a plurality ofexternal programs that can be activated by the main program; an inputinterface; and a communication interface communicable with an imageinput apparatus being configured to execute an input operation oftransmitting input data to the image processing apparatus, the mainprogram, when executed by the processor, causes the image processingapparatus to perform: receiving, via the input interface, designation ofa first external program, which is one of the plurality of externalprograms, the first external program being for executing a firstfunction, the first function being a function of executing processingfor the input data; in a case receiving the designation of the firstexternal program, instructing the image input apparatus to execute theinput operation; and performing first post-processing of designating theinput data input in the input operation and activating the firstexternal program. 13.-20. (canceled)
 21. The non-transitorycomputer-readable medium according to claim 1, wherein the communicationinterface is communicable with an image output apparatus, and whereinthe computer program, when executed by the computer, causes the imageprocessing apparatus to perform: receiving, via the input interface,designation of a second external program, which is one of the pluralityof external programs, the second external program being for executing asecond function, the second function being a function of enabling a userto designate the output data; performing pre-processing of activatingthe second external program to obtain the output data; and controllingthe image output apparatus to execute the output operation for theoutput data obtained in the pre-processing.
 22. The image processingapparatus according to claim 12, wherein the communication interface iscommunicable with an image output apparatus, and wherein the mainprogram, when executed by the processor, causes the image processingapparatus to perform: receiving, via the input interface, designation ofa second external program, which is one of the plurality of externalprograms, the second external program being for executing a secondfunction, the second function being a function of enabling a user todesignate the output data; performing pre-processing of activating thesecond external program to obtain the output data; and controlling theimage output apparatus to execute the output operation for the outputdata obtained in the pre-processing.
 23. A method for controlling animage processing apparatus, the image processing apparatus comprising aninput interface, a memory and a communication interface beingcommunicable with an image input apparatus being configured to executean input operation of transmitting input data to the image processingapparatus, the memory storing a plurality of external programs that canbe activated by the computer program, the computer program, the methodcomprising: receiving, via the input interface, designation of a firstexternal program, which is one of the plurality of external programs,the first external program being for executing a first function, thefirst function being a function of executing processing for the inputdata; instructing the image input apparatus to execute the inputoperation; and performing first post-processing of designating the inputdata input in the input operation and activating the first externalprogram.
 24. The method according to claim 23, further comprising:receiving, via the input interface, designation of a second externalprogram, which is one of the plurality of external programs, the secondexternal program being for executing a second function, the secondfunction being a function of enabling a user to designate the outputdata; performing pre-processing of activating the second externalprogram to obtain the output data; and controlling an image outputapparatus to execute the output operation for the output data obtainedin the pre-processing, the communication interface being communicablewith the image output apparatus.